<?php

require_once("/var/www/AppResiduos2/config/BaseDatosPDO.php");
require_once("/var/www/AppResiduos2/lib/model/Empresa.php");

class EmpresaDAO{


        var $conexion;

        public function  __construct() {
            try{
                $bd = new BaseDatosPDO("localhost", "phplogin", "root", "root");
                $this->conexion = $bd->conectar();
            } catch (PDOException $e){
                echo $e->getMessage();
            }
            $this->conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
            $this->conexion->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
        }

	/**
	Crea una nuevo registro en la tabla Empresa en la bd
	@param Empresa empresa
	*/
	public function nuevaEmpresa($empresa){
            $query = $this->conexion->prepare("INSERT INTO orgs VALUES ('',?,?)");
            $params = array($empresa->name, $empresa->type);
            $result = $query->execute($params);
	}

	/**
	Modifica una un registro de la tabla Empresa de la bd
	@param Empresa empresa
	*/
	public function modificarEmpresa($empresa){
            $query = $this->conexion->prepare('UPDATE orgs SET name = ?,
                type = ? WHERE id = ?');
            $params = array($empresa->name, $empresa->type, $empresa->id);
            $result = $query->execute($params);
	}

	/**
	Elimina un registro de la tabla Empresa de la bd
	*/
	public function eliminarEmpresa($empresa){
            $query = $this->conexion->prepare('DELETE FROM orgs WHERE id = ?');
            $result = $query->execute(array($empresa->id));
	}

	/**
	Obtiene un registro de la tabla Empresa de la bd
	*/
	public function obtenerEmpresa($id){
            $query = $this->conexion->prepare('SELECT * FROM orgs WHERE id = ?');
            $query->execute(array($id));
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
	}

        /**
         * Obtiene un regisro de la tabla orgs de la bd,
         * dado el nombre de la misma.
         * @param String $name
         * @return Empresa
         */
        public function obtenerEmpresaPorNombre($name){
            $query = $this->conexion->prepare('SELECT * FROM orgs WHERE name = ?');
            $query->execute(array($name));
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
	}

	/**
         * Lista todos los registros de la tabla Empresa de la bd
         * en orden ascendente por nombre de la empresa.
	*/
	public function listarEmpresas(){
            $query = $this->conexion->prepare("SELECT * FROM orgs WHERE 1 ORDER BY name");
            $query->execute();
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
	}

        public function listarProductores(){
            $query = $this->conexion->prepare("SELECT * FROM orgs WHERE type LIKE 'productor' ORDER BY name");
            $query->execute();
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
        }

        public function listarTransportadores(){
            $query = $this->conexion->prepare("SELECT * FROM orgs WHERE type LIKE 'transportador' ORDER BY name");
            $query->execute();
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
        }

       
}

//Prueba1: Agregar empresas
//$e1 = new Empresa;
//$e1->name = "Bimbo";
//$e1->type = "productor";
//
//$e2 = new Empresa;
//$e2->name = "Coca Cola";
//$e2->type = "productor";
//
//$eDAO = new EmpresaDAO();
//$eDAO->nuevaEmpresa($e1);
//$eDAO->nuevaEmpresa($e2);

//Prueba2: Modificar Empresas
//$e1 = new Empresa;
//$e1->id = 1;
//$e1->name = "Bimbo";
//$e1->type = "transportador";
//
//$e2 = new Empresa;
//$e2->id = 2;
//$e2->name = "Coca Cola";
//$e2->type = "productor";
//
//$eDAO = new EmpresaDAO();
//$eDAO->modificarEmpresa($e1);
//$eDAO->modificarEmpresa($e2);

//Prueba3: Eliminar Empresa
//$e2 = new Empresa;
//$e2->id = 2;
//$eDAO = new EmpresaDAO();
//$eDAO->eliminarEmpresa($e2);

//Prueba4: Obtener Empresa por ID
// salida: Bimbo
//$eDAO = new EmpresaDAO();
//$emp = $eDAO->obtenerEmpresaPorNombre("coca");
//print_r($emp[0]->type);

//Prueba5: Listar Empresas
//$eDAO = new EmpresaDAO();
//$emp = $eDAO->listarEmpresas();
//print_r($emp);


//Prueba6: Listar Productores
//$eDAO = new EmpresaDAO();
//$emp = $eDAO->listarProductores();
//print_r($emp);
?>
